package com.xhb.ui.tools;
import com.baidu.aip.bodyanalysis.AipBodyAnalysis;
import org.json.JSONObject;
 
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Base64;
import java.util.HashMap;

public class PopleImgUtil {

	 public static void main(String[] args) {
		 
		 PopleImgUtil.foreground("C:\\zgymw\\江西学员名单\\方作其-土建施工员-362321197409048338\\1.png");
	    }
	 
	 
		public static void foreground(String file) {
			HashMap<String, String> options = new HashMap<String, String>();
			options.put("type", "foreground");
			String APPID = "44019428";
			String APIKEY = "abtKC1A5Ibkiz0CwrMXuq093";
			String SECRETKEY = "zWUINGHZPgs5uVwbMy66wOCrhH7GX82r";
			AipBodyAnalysis client = new AipBodyAnalysis(APPID, APIKEY, SECRETKEY);
			// 调用接口
			JSONObject object = client.bodySeg(file, null);
			if (object.has("foreground")) {
				String foreground = object.get("foreground").toString();
				// 把foreground 保存成png格式的透明图片
				GenerateImage(foreground, file);
			}
		}
	 
	    /**
	* base64字符串转化成图片
	* @param imgStr 接口返回的图片base64数据
	* @param imgFilePath 即将要保存的图片的本地路径包含文件名称和格式 例如:F:/generateimage.jpg
	* @return
	*/
	    public static boolean GenerateImage(String imgStr, String imgFilePath) { // 对字节数组字符串进行Base64解码并生成图片
	        if (imgStr == null) // 图像数据为空
	        return false;
	        Base64.Decoder decoder = Base64.getDecoder();
	        try {
	            // Base64解码
	            byte[] b = decoder.decode(imgStr);
	            for (int i = 0; i < b.length; ++i) {
	                if (b[i] < 0) { // 调整异常数据
	                    b[i] += 256;
	                }
	            }
	            // 生成jpeg图片
	            OutputStream out = new FileOutputStream(imgFilePath); // 新生成的图片
	            out.write(b);
	            out.flush();
	            out.close();
	            System.out.println("保存成功" + imgFilePath);
	            return true;
	        } catch(Exception e) {
	            System.out.println("出错了" + e.getMessage());
	            return false;
	        }
	    }
}
